package at.spengergasse.web.servlet.mitarbeiter;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import at.spengergasse.model.Mitarbeiter;

@SuppressWarnings("serial")
public class DeleteMitarbeiterServlet extends AbstractMitarbeiterServlet
{

	public DeleteMitarbeiterServlet() throws Exception
	{
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException
	{
		log.debug("started processing");

		Long mitarbeiterId = checkMitarbeiterIdParam(req, resp);

		Mitarbeiter mitarbeiter = mitarbeiterDao.findById(connection,
				mitarbeiterId);
		if (mitarbeiter != null)
		{
			mitarbeiterDao.delete(connection, mitarbeiter);
			try
			{
				connection.commit();
				log.info("successfully deleted Mitarbeiter for id "
						+ mitarbeiterId);
			} catch (SQLException ex)
			{
				log.warn("troubles deleting Mitarbeiter with id "
						+ mitarbeiterId);
				redirectToMitarbeiterList(req, resp,
						"troubles deleting Mitarbeiter");
				return;
			}
		} else
		{
			log.warn("troubles finding Mitarbeiter with id " + mitarbeiterId
					+ " for deletion");
			redirectToMitarbeiterList(req, resp,
					"could not find Mitarbeiter with id " + mitarbeiterId);
			return;
		}

		redirectToMitarbeiterList(req, resp);

		log.debug("finished processing");
	}
}
